package com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptConsume;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 验券
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzh/tuangou/receipt/consume",
    businessId = 58,
    apiVersion = "10063",
    apiName = "tuangou_receipt_consume",
    needAuth = true
)
public class TuangouReceiptConsumeRequest implements MeituanRequest<TuangouReceiptConsumeResponse> {
    /**
    * <p data-diff-id="ct-diff-id-bab9b4ba-53a0-45e9-a69e-37c5c762ced8"><span style="color: rgb(31, 45, 61)">团购券码，必须未验证</span></p>
    */
    @NotBlank(message = "receiptCode不能为空")
    @SerializedName("receiptCode")
    private String receiptCode;
    /**
    * <p data-diff-id="ct-diff-id-3a3691e5-84fa-4d6c-a3b0-3e4e97356ac7"><span style="color: rgb(31, 45, 61)">验券数量, 不可多于100个</span></p>
    */
    @NotNull(message = "count不能为空")
    @SerializedName("count")
    private Integer count;
    /**
    * <p data-diff-id="ct-diff-id-6ea7230a-3984-4bf6-8ae6-4c9a202b1406"><span style="color: rgb(31, 45, 61)">请求ID，用于标识幂等性</span></p>
    */
    @NotBlank(message = "requestId不能为空")
    @SerializedName("requestId")
    private String requestId;
    /**
    * <p data-diff-id="ct-diff-id-ea0a02ad-7c0e-480d-8036-ad141bab3fe4">商家在自研系统或第三方服务商系统内登陆的用户名，仅用于记录验券者的信息，该字段不参与任何验券校验逻辑</p>
    */
    @NotBlank(message = "appShopAccountName不能为空")
    @SerializedName("appShopAccountName")
    private String appShopAccountName;
    /**
    * <p data-diff-id="ct-diff-id-da6563bb-d464-49d3-a220-83b21fb63a83"><span style="color: rgb(31, 45, 61)">商家在自研系统或第三方服务商系统内登录的帐号，仅用于记录验券者的信息，该字段不参与任何验券校验逻辑</span></p>
    */
    @NotBlank(message = "appShopAccount不能为空")
    @SerializedName("appShopAccount")
    private String appShopAccount;
    /**
    * <p data-diff-id="ct-diff-id-dc17704c-3bed-4542-98ae-464170428b9e"><span style="color: rgb(31, 45, 61)">核销设备ID（未上线）</span></p>
    */
    @SerializedName("thirdDeviceId")
    private String thirdDeviceId;
    /**
    * <p data-diff-id="ct-diff-id-37d0c64e-dc08-4ccc-87f8-0237c9876c1c"><span style="color: rgb(31, 45, 61)">核销设备经纬度，格式"经度,纬度"，示例："116.424966,39.930207"（未上线）</span></p>
    */
    @SerializedName("thirdDeviceLocation")
    private String thirdDeviceLocation;
    /**
    * <p data-diff-id="ct-diff-id-b70935dc-5238-49df-b6f8-6ce01fb15f7b"><span style="color: rgb(31, 45, 61)">三方设备类型（未上线），枚举如下：</span></p><p data-diff-id="ct-diff-id-03b90ecb-80ef-4172-b6ea-82c81b73fc7d"><span style="color: rgb(31, 45, 61)">兑币机</span></p><p data-diff-id="ct-diff-id-99858960-f8bf-467a-92d0-4820c50af417">娃娃机</p>
    */
    @SerializedName("thirdDeviceType")
    private String thirdDeviceType;
    /**
    * <p data-diff-id="ct-diff-id-d0faaa0c-256d-4008-a18c-dcbb3b27ba7b"><span style="color: rgb(31, 45, 61)">三方设备所在城市，地址格式：市-区， 例如“北京市-密云区”（未上线），城市范围：</span><a class="ct-link" href="https://s3plus-shon.meituan.net/v1/mss_2c731f110e404bb089e444b8a16334e7/document/%E5%9F%8E%E5%B8%82%E8%8C%83%E5%9B%B4.xlsx" data-auto_update="0">城市范围</a></p>
    */
    @SerializedName("thirdDeviceCity")
    private String thirdDeviceCity;
    /**
    * <p data-diff-id="ct-diff-id-aadc1ab9-ff00-4b38-ae11-5c55333d9628"><span style="color: rgb(31, 45, 61)">核销场地ID（未上线）</span></p>
    */
    @SerializedName("thirdVenueId")
    private String thirdVenueId;
    /**
    * <p style="text-align: center;" data-diff-id="ct-diff-id-d7285d9b-c6a3-4068-a423-414d63c038da"><span style="color: rgb(31, 45, 61)">三方位置类型（未上线），枚举如下：</span></p><p style="text-align: center;" data-diff-id="ct-diff-id-335e45bb-b393-408d-a377-c29a90dd0cf2">幼儿园</p><p style="text-align: center;" data-diff-id="ct-diff-id-df1374c7-eb68-4404-841f-417c860726b2">小学</p><p style="text-align: center;" data-diff-id="ct-diff-id-1d7cd692-4e97-4f6b-98c5-378a549804f4">初中</p><p style="text-align: center;" data-diff-id="ct-diff-id-2c63779d-2a98-4e52-af3c-932a9b519aab">高中&amp;职业技术学校</p><p style="text-align: center;" data-diff-id="ct-diff-id-f4875738-7f97-4bd9-8cd4-f26b712e78ba">大学</p><p style="text-align: center;" data-diff-id="ct-diff-id-1313c273-155f-40d2-a191-1685eff4adc4">培训机构</p><p style="text-align: center;" data-diff-id="ct-diff-id-db28e2d7-3b8a-4f6f-95dd-ceb00709223d">酒店</p><p style="text-align: center;" data-diff-id="ct-diff-id-88df0cc2-7328-476e-bf26-a2063fbc8d3b">4S店</p><p style="text-align: center;" data-diff-id="ct-diff-id-ba885ddb-df02-465d-8f0b-22b1e0ec445a">步行街</p><p style="text-align: center;" data-diff-id="ct-diff-id-0a9ba8e0-ad88-4e20-b8b8-e5f910673e19">机场</p><p style="text-align: center;" data-diff-id="ct-diff-id-d5ae5fd8-370a-4786-8b9a-a7bc8d47afec">火车站</p><p style="text-align: center;" data-diff-id="ct-diff-id-7cc5854c-349a-4ca5-a38c-a0d1577813c2">汽车站</p><p style="text-align: center;" data-diff-id="ct-diff-id-523cb84d-9477-4fea-a5c5-437b3bfd3ddc">地铁站</p><p style="text-align: center;" data-diff-id="ct-diff-id-d7360a3e-13c4-4a95-baf5-e1fe58d6afca">工厂</p><p style="text-align: center;" data-diff-id="ct-diff-id-977d37ae-48d0-4b86-9924-03d101ebfeb7">社区</p><p style="text-align: center;" data-diff-id="ct-diff-id-e364f921-0f1d-4350-ac97-3a579219ba4c">办公楼</p><p style="text-align: center;" data-diff-id="ct-diff-id-72c4105e-6c29-4869-a106-bf36018ec50c">医院</p><p style="text-align: center;" data-diff-id="ct-diff-id-910d2592-1547-43ee-9e23-bcb3ac9040f2">政府机构</p><p style="text-align: center;" data-diff-id="ct-diff-id-520845c0-7453-4767-b390-a8c62ef8e326">旅游景点</p><p style="text-align: center;" data-diff-id="ct-diff-id-5e2d93a4-0921-492d-ba95-c94c20a2f78c">KTV</p><p style="text-align: center;" data-diff-id="ct-diff-id-aafb6085-a0b2-49cd-a805-ca2b7740cc7f">游艺厅</p><p style="text-align: center;" data-diff-id="ct-diff-id-1b79d2f0-2611-455e-9167-83d611e6e728">电影院</p><p style="text-align: center;" data-diff-id="ct-diff-id-abb81247-ca63-4542-b260-98f1f632cf23">商场</p><p style="text-align: center;" data-diff-id="ct-diff-id-1dd57f2c-e13f-4703-afc2-2684f41407bf">网吧</p><p style="text-align: center;" data-diff-id="ct-diff-id-5af1e501-594d-4acf-bc8b-64f42bbdee25">酒吧</p><p style="text-align: center;" data-diff-id="ct-diff-id-1899ef4a-7865-4977-8e16-cb20c20fac76">会所</p><p style="text-align: center;" data-diff-id="ct-diff-id-35d97c52-2990-4852-8079-b39a25b3075b">咖啡厅</p><p style="text-align: center;" data-diff-id="ct-diff-id-b40a53a1-e628-4f0c-aef5-24c8611a2862">餐饮店</p><p style="text-align: center;" data-diff-id="ct-diff-id-742be7d4-fae3-4b66-9781-781cf9440a6d">奶茶店</p><p style="text-align: center;" data-diff-id="ct-diff-id-b3c0ba2d-7194-4da9-9e8b-ce887e577020">夜总会</p><p style="text-align: center;" data-diff-id="ct-diff-id-269cf9a2-a8eb-4037-b706-21827bba6a4b">书报亭</p><p style="text-align: center;" data-diff-id="ct-diff-id-672b8dde-316b-42ab-94d5-b6858d9cc107">其他</p>
    */
    @SerializedName("thirdLocationType")
    private String thirdLocationType;

    public String getReceiptCode() {
        return receiptCode;
    }
    public void setReceiptCode(String receiptCode) {
        this.receiptCode = receiptCode;
    }
    public Integer getCount() {
        return count;
    }
    public void setCount(Integer count) {
        this.count = count;
    }
    public String getRequestId() {
        return requestId;
    }
    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }
    public String getAppShopAccountName() {
        return appShopAccountName;
    }
    public void setAppShopAccountName(String appShopAccountName) {
        this.appShopAccountName = appShopAccountName;
    }
    public String getAppShopAccount() {
        return appShopAccount;
    }
    public void setAppShopAccount(String appShopAccount) {
        this.appShopAccount = appShopAccount;
    }
    public String getThirdDeviceId() {
        return thirdDeviceId;
    }
    public void setThirdDeviceId(String thirdDeviceId) {
        this.thirdDeviceId = thirdDeviceId;
    }
    public String getThirdDeviceLocation() {
        return thirdDeviceLocation;
    }
    public void setThirdDeviceLocation(String thirdDeviceLocation) {
        this.thirdDeviceLocation = thirdDeviceLocation;
    }
    public String getThirdDeviceType() {
        return thirdDeviceType;
    }
    public void setThirdDeviceType(String thirdDeviceType) {
        this.thirdDeviceType = thirdDeviceType;
    }
    public String getThirdDeviceCity() {
        return thirdDeviceCity;
    }
    public void setThirdDeviceCity(String thirdDeviceCity) {
        this.thirdDeviceCity = thirdDeviceCity;
    }
    public String getThirdVenueId() {
        return thirdVenueId;
    }
    public void setThirdVenueId(String thirdVenueId) {
        this.thirdVenueId = thirdVenueId;
    }
    public String getThirdLocationType() {
        return thirdLocationType;
    }
    public void setThirdLocationType(String thirdLocationType) {
        this.thirdLocationType = thirdLocationType;
    }


    @Override
    public MeituanResponse<TuangouReceiptConsumeResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<TuangouReceiptConsumeResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "TuangouReceiptConsumeRequest{" + "receiptCode=" + receiptCode + "," + "count=" + count + "," + "requestId=" + requestId + "," + "appShopAccountName=" + appShopAccountName + "," + "appShopAccount=" + appShopAccount + "," + "thirdDeviceId=" + thirdDeviceId + "," + "thirdDeviceLocation=" + thirdDeviceLocation + "," + "thirdDeviceType=" + thirdDeviceType + "," + "thirdDeviceCity=" + thirdDeviceCity + "," + "thirdVenueId=" + thirdVenueId + "," + "thirdLocationType=" + thirdLocationType + "}";
    }
}
